package com.icinfo.cloud.provider.punish.config.model;

import lombok.Data;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 部门事项自由裁量配置（事项违法情形配置）
 */
@Data
@Table(name = "upcase.config_org_regulatory_discretion_rule")
public class ConfigOrgRegulatoryDiscretionRule implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @Id
    @Column(name = "id")
    private String id;

    /**
     * 部门裁量配置id
     */
    @Column(name = "discretion_id")
    private String discretionId;

    /**
     * 事项历史id
     */
    @Column(name = "rule_his_id")
    private String ruleHisId;

    /**
     * 部门code（市级裁量时，该code为市司法局code）
     */
    @Column(name = "org_code")
    private String orgCode;

    /**
     * 配置类型  1-市级裁量，2-单位裁量
     */
    @Column(name = "config_type")
    private String configType;

    /**
     * 事项唯一id（事项catalogId）
     */
    @Column(name = "regulatory_catalog_id")
    private String regulatoryCatalogId;

    /**
     * 适用类型： 1-个人 2-单位
     */
    @Column(name = "apply_type")
    private String applyType;

    /**
     * 规则名称（违法情节名称）
     */
    @Column(name = "rule_name")
    private String ruleName;

    /**
     * 规则类型 1-区间金额 2-固定金额
     */
    @Column(name = "rule_type")
    private String ruleType;

    /**
     * 金额下限
     */
    @Column(name = "lower_limit_amount")
    private BigDecimal lowerLimitAmount;

    /**
     * 金额上限
     */
    @Column(name = "upper_limit_amount")
    private BigDecimal upperLimitAmount;

    /**
     * 固定金额
     */
    @Column(name = "fix_amount")
    private BigDecimal fixAmount;

    /**
     * 排序字段 时间戳13位+3位当批顺序值
     */
    @Column(name = "sort")
    private Long sort;

    /**
     * 适用简易案件 0 不适用  1适用
     */
    @Column(name = "apply_simple")
    private String applySimple;


    /**
     * 适用普通案件 0不适用 1适用
     */
    @Column(name = "apply_normal")
    private String applyNormal;

    /**
     * 档次等级
     */
    @Column(name = "grade_level")
    private String gradeLevel;

    /**
     * 处罚种类,逗号隔开
     */
    @Column(name = "punish_kinds")
    private String punishKinds;


    /**
     * 创建时间
     */
    @Column(name = "create_time")
    private Date createTime;

    /**
     * 创建用户名称
     */
    @Column(name = "create_user")
    private String createUser;

    /**
     * 修改时间
     */
    @Column(name = "update_time")
    private Date updateTime;

    /**
     * 修改用户名称
     */
    @Column(name = "update_user")
    private String updateUser;
}
